Reti Ethernet

di Ciro ESPOSITO

Modello di rete Ethernet

Una rete Ethernet può essere costruita usando diversi tipi di supporto fisico: dai cavi coassiali (ormai in disuso) agli UTP (Unshielded Twisted Pair), cavi costituiti da 8 fili attorcigliati tra loro. Simili agli UTP, ma più economici, sono i cavi piatti da 8 fili: essi somigliano molto ai cavi usati per collegare il telefono alla presa, solo che sono più larghi. Ci sono due diversi connettori che possono essere usati, a seconda del tipo di cavo scelto. I cavi coassiali hanno bisogno di connettori in metallo chiamati BNC, mentre i cavi UTP e quelli piatti usano connettori in plastica chiamati RJ-45.

Esaminiamo ora la topologia di rete, che è diversa a seconda del tipo di cavo: se si usano cavi coassiali, ogni tratto di cavo va connesso al successivo, in modo da formare una singola linea che attraversa ogni PC. Fra una tratta e l'altra si interpone un connettore a "T", le cui estremità sono collegate a due tratte e al PC.

Infine, l'inizio e la fine della linea devono essere terminate, cioè occorre inserire un apposito "tappo" alle estremità dei due connettori a "T" ai capi della linea. La disposizione finale dei cavi,  si chiama generalmente topologia a bus.

Usando invece cavi UTP o piatti occorre stendere un cavo a partire da ogni PC della rete; tutti cavi devono poi confluire verso un dispositivo concentratore chiamato per l’appunto hub. La topologia risultante è chiamata a stella.

Entrambi i metodi presentano vantaggi e svantaggi: il principale svantaggio della topologia a bus è che il guasto di uno solo dei collegamenti causa il blocco dell'intera rete. Il suo principale vantaggio, d'altra parte, è che si possono aggiungere PC a piacimento (o quasi) semplicemente aggiungendo un nuovo tratto di cavo coassiale ad una delle estremità e spostando il tappo terminatore. La topologia a stella è più robusta, avendo un collegamento dedicato per ciascun computer collegato; e se uno di essi si guasta, solo un computer resta tagliato fuori. Inoltre, i guasti si possono individuare più facilmente perché il collegamento rotto è immediatamente riconoscibile.

Lo svantaggio è la necessità di avere un dispositivo aggiuntivo per installare la rete, che causa un leggero sovrapprezzo. Infine, l'hub ha un numero di porte limitato e, una volta che esse siano esaurite, occorre acquistarne uno nuovo per espandere la rete. In caso ce ne sia bisogno, è possibile avere due gruppi di computer, uno collegato con cavi coassiali e l'altro con UTP: i due gruppi possono formare una rete unica connettendo l'hub alla linea dei cavi coassiali come un nodo qualsiasi.

La velocità dei dati (o rate) che può essere raggiunta su reti Ethernet varia molto a seconda del numero di computer connessi. In teoria, ci sono due rate nominali: 10 Mbit/s e 100 Mbit/s. La seconda velocità richiede schede di rete e cavi di migliore qualità (e leggermente più costosi). Il rate effettivo al quale i dati saranno poi trasmessi può raggiungere anche il 90% del rate nominale, ma questo valore diminuisce molto rapidamente all'aumentare del numero di computer connessi alla rete. Il motivo di questo comportamento è che tutti i computer condividono lo stesso mezzo fisico (sia esso il cavo coassiale o l'hub), e quando uno di essi trasmette tutti gli altri devono restare in silenzio e ascoltare. Non c'è limite al rallentamento causato da questa contesa, e il rate può facilmente raggiungere zero in condizioni estreme. Oggi giorno gli Hub vengono utilizzati per piccole reti in uffici che al massimo collegano una decina di PC.

Un'altra conseguenza della condivisione del mezzo fisico è che quando un computer trasmette qualcosa, tutti gli altri in realtà la ricevono. Nella maggior parte dei casi, tutti ignoreranno la trasmissione eccetto il vero destinatario del messaggio: questo un è metodo immediato per garantire la comunicazione tra due computer. Vedremo maggiori dettagli in proposito tra breve.

Per ovviare ai problemi introdotti dagli Hub, esistono dei dispositivi “intelligenti” chiamati switch che oltre a segmentare la rete, e quindi a stabilire una connessione punto – punto fra due PC che si devono scambiare i  dati, offrono performance di alto livello alla rete, per una serie di prestazioni che sono in grado di dare.

Il principale vantaggio di uno switch rispetto ad un Hub è dato dal fatto che su ogni presa a cui viene collegato un PC è disponibile l’intera larghezza di banda dichiarata dal costruttore, che a differenza di un Hub non deve essere condivisa fra il numero di PC collegati nella rete. Quindi siamo in presenza di una rete ad alta velocità, pochissime collisioni, maggior sicurezza per quanto riguarda la possibilità che ci vengano “catturati” i dati da qualche fantomatico sniffer collegato in qualche punto della rete.

Avremo modo di approfondire alcuni concetti sugli switch quando andremo a trattare nello specifico i prodotti attivi delle reti.

 Schede di rete

Per collegare i computer alla rete, ognuno di essi deve essere dotato di una scheda di rete: tali schede sono del tutto simili alle altre già presenti nel PC, e presentano un paio di connettori sul retro. La maggior parte delle schede ha sia il connettore BNC che quello RJ-45, mentre alcune hanno solo uno dei due. Ogni scheda di rete è identificata da un indirizzo unico, detto indirizzo fisico (MAC ADDRESS) lungo 48 bit, che è codificato nell'hardware della scheda stessa e non può essere cambiato. Dunque, ogni scheda nel mondo ha sicuramente un indirizzo differente. Questo significa che si potrebbe identificare il proprio computer semplicemente tramite l'indirizzo della sua scheda di rete, e lo si potrebbe trovare indipendentemente dalla sua locazione. Anche se questo è certamente vero, ci sono modi molto più comodi per identificare un computer. L'indirizzo codificato nella scheda di rete è spesso chiamato "indirizzo hardware", indirizzo Ethernet, oppure indirizzo MAC. Quest'ultima definizione deriva da Medium Access Control, che e' il nome della parte inferiore del livello 2 nella pila OSI. Infatti, si può facilmente vedere che le schede di rete di cui stiamo parlando occupano i livelli 1 e 2 della pila.

Ancora protocolli

Parlando di schede Ethernet, la maggior parte delle volte si parla di reti TCP/IP: questo significa che la pila di protocolli della rete usa Ethernet come supporto fisico e tecnologia di collegamento (livelli 1 e 2), l'IP Internet Protocol come protocollo di rete (livello 3) e TCP (Transport Control Protocol) come protocollo di trasporto (livello 4). Questo potrebbe sembrare complicato, ma in realtà è solo una questione di separare i compiti. In particolare, uno dei compiti di IP è identificare i computer di tutta Internet assegnando loro un indirizzo numerico. Un altro importante compito di IP è preparare i pacchetti con i dati da trasmettere, e decidere quale percorso debbano seguire per raggiungere la destinazione. L'indirizzo fornito da IP è lungo 4 byte, e di solito viene scritto come quattro numeri separati da punti: per esempio, 10.0.0.1 e 192.168.9.1 sono entrambi indirizzi IP validi.

La ragione per la quale serve un indirizzo in più, quello IP, in aggiunta a quello Ethernet, è che Ethernet non è stata progettata per congiungere diverse reti locali: è molto facile avere due computer in comunicazione su Ethernet, ma sarebbe impossibile farli parlare se fossero su reti "fisiche" (ovvero cavi) differenti e non ci fossero gli indirizzi IP.

Diciamo che IP ha più intelligenza di Ethernet, e può aiutare i pacchetti a trovare la strada verso il computer destinazione anche se esso è fisicamente posto molto lontano da quello sorgente. Quindi, quando un pacchetto è trasmesso sulla rete locale viene usato il suo indirizzo Ethernet, mentre l'indirizzo IP è utile se il pacchetto deve attraversare diverse reti per arrivare a destinazione.

La cosa più importante da sapere a proposito dell'indirizzo IP (a parte l'indirizzo stesso, naturalmente) è la cosiddetta netmask ad esso associata.

Le funzioni addizionali svolte da IP si basano sui concetti di indirizzo di host (dove per host si intende un computer connesso in rete) e indirizzo di rete .

Il primo è semplicemente l'indirizzo IP del computer, mentre il secondo è l'indirizzo della rete locale in cui esso risiede.

L'indirizzo di rete si ottiene dall'indirizzo del computer "applicando" ad esso la netmask.

Un esempio chiarirà questo oscuro concetto: supponiamo che l'indirizzo IP del computer sia 192.168.9.4, e che la netmask associata sia 255.255.255.0. Convertendo entrambi i numeri in notazione binaria, si vedrà che la netmask è una sequenza di 24 "uno" seguiti da 8 "zeri". Applicare la netmask vuole dire effettuare l'operazione di AND logico tra maschera e indirizzo: è facile vedere che il risultato è uguale all'indirizzo IP stesso dove la maschera contiene "1", e zero altrove.

Quindi, nel nostro esempio, l'indirizzo di rete sarebbe 192.168.9.0. Affinché due computer sulla stessa rete locale possano comunicare, essi devono avere lo stesso indirizzo di rete. Se i loro indirizzi di rete fossero differenti, allora occorrerebbe uno speciale dispositivo chiamato router per interconnetterli.

E' facile capire che ogni computer in rete ha due diversi indirizzi: il primo, quello Ethernet, è codificato sulla scheda di rete, mentre il secondo, quello IP, è assegnato dal protocollo IP. In pratica, l'indirizzo Ethernet non si usa mai, dato che l'interazione con la rete può essere gestita usando solo indirizzi IP. Sarà il sistema operativo ad occuparsi della conversione. E' interessante vedere come questa conversione sia fatta, per approfondire alcuni dettagli della comunicazione tra computer.

Comunicare su Ethernet

Supponiamo di avere una piccola rete locale, composta da quattro computer chiamati A, B, C e D . Supponiamo inoltre che gli indirizzi IP di questi computer siano 192.168.9.x, dove x è 1 per A, 2 per B, 3 per C e 4 per D. Naturalmente i quattro computer hanno anche un indirizzo Ethernet, che per il momento fingeremo di ignorare.

Quando la rete è utilizzata per la prima volta, nessuno conosce gli indirizzi Ethernet degli altri, mentre gli indirizzi IP sono noti (di solito sono scritti in un file, come vedremo nel prossimo paragrafo).

Supponiamo ora che A voglia comunicare con C: la prima cosa fatta da A è cercare l'indirizzo IP di C, che si trova nel file sopra menzionato. Avendo scoperto che l'indirizzo è 192.168.9.3, A inizia una procedura chiamata ARP (Address Resoluion Protocol) per ottenere il "vero" indirizzo di C (quello Ethernet).

Innanzitutto, un "frame" di dati (cioè una manciata di byte) viene trasmesso da A sul cavo, dove tutti gli altri computer possono riceverlo. Il frame di dati contiene una semplice richiesta: chiunque abbia l'indirizzo IP 192.168.9.3, è pregato di comunicare il proprio indirizzo Ethernet ad A.

Naturalmente, l'indirizzo Ethernet di A è scritto nel frame, in modo che le risposte possano raggiungerlo. Vediamo cosa succede dopo: tutti i computer vedono la richiesta di A, ma B e D la ignorano in quanto il loro indirizzo IP non è quello specificato. Solo C, che riconosce il proprio indirizzo IP, risponderà inviando sul cavo un nuovo frame di dati, contenente l'indirizzo Ethernet di A (che C ha imparato dalla richiesta) e quello di C. Nuovamente, B e D ignoreranno questo frame in quanto contiene come indirizzo destinatario quello di A. A catturerà il frame, e leggerà in esso l'indirizzo Ethernet di C. La procedura di ARP è così completa, e il risultato è che A e C conoscono i reciproci indirizzi Ethernet (e li hanno associati ai rispettivi indirizzi IP). La comunicazione vera e propria può cominciare, e tutti i dati inviati da A a C (e viceversa) saranno diretti all'indirizzo Ethernet corretto.

Questa procedura è completamente trasparente per l'utente, che deve semplicemente conoscere l'indirizzo IP. In pratica, molto spesso l'utente non deve nemmeno ricordare l'indirizzo IP: un file su ogni computer mantiene l'associazione tra nomi (come A e C, o più spesso come A.miodominio.com) e indirizzi IP per la rete locale. La stessa associazione per indirizzi di reti esterne (non locali) è fatta utilizzando un protocollo chiamato DNS, la cui descrizione è ben oltre lo scopo di questo articolo.

Sarà sufficiente sapere che la conversione tra un nome e un indirizzo IP è automatica, e che non ha niente a che vedere con Ethernet. La seconda conversione, tra indirizzo IP e indirizzo Ethernet, è fatta con ARP e si affida pesantemente alla particolare caratteristica di Ethernet, grazie alla quale ogni computer può "sentire" tutti gli altri. Senza questa caratteristica, si può facilmente capire che la procedura di ARP sarebbe impossibile.